package antlr4.definitive.d3_arrayinit.d3_1_arrayinit.run;

import antlr4.definitive.d3_arrayinit.d3_1_arrayinit.gen.ArrayInitBaseListener;
import antlr4.definitive.d3_arrayinit.d3_1_arrayinit.gen.ArrayInitParser;

public class ShortToUnicodeString extends ArrayInitBaseListener {
    //将{翻译为"
    @Override
    public void enterInit(ArrayInitParser.InitContext ctx) {
        System.out.print('"');
    }

    //将}翻译为"
    @Override
    public void exitInit(ArrayInitParser.InitContext ctx) {
        System.out.print('"');
    }

    //每个整数翻译为四位的十六进制形式，然后加前缀\ u
    @Override
    public void enterValue(ArrayInitParser.ValueContext ctx) {
        //假定不存在嵌套结构
        int value = Integer.parseInt(ctx.INT().getText());
        System.out.printf("\\u%04x", value);
    }
}
